package com.dhq.myapp.ui.identity

import android.util.Base64
import android.util.Log

/**
 * DESC
 * Created by DHQ on 2025/10/31.
 */
class ThirdPartyAsrClient(
    val onResult: ((text: String)->Unit)?,
    val onError: ((errorMsg: String) ->Unit)?) {




    /**
     * 初始化ASR（传入音频参数）
     */
    fun init(sampleRate: Int, channelCount: Int, bitDepth: Int, codecType: Int) {
        // 实际ASR初始化逻辑（如百度ASR的init方法）
        Log.d("AsrClient", "初始化ASR：采样率=$sampleRate，声道数=$channelCount")
    }


    /**
     * 发送音频数据给ASR
     */
    fun sendAudioData(data: ByteArray) {
        // 实际ASR发送数据逻辑（如百度ASR的send方法）
        Log.d("AsrClient", "发送音频数据：长度=${data.size} 字节")

//        val validData = data.copyOfRange(offset, offset + length)
        var voiceStr = convertAudioByteArrayToBase64(data)
        Log.e("发送音频数据：长度=${data.size} 字节",voiceStr)


    }


    fun concatenateByteArrays(first: ByteArray, second: ByteArray): ByteArray {
        val result = ByteArray(first.size + second.size)
        System.arraycopy(first, 0, result, 0, first.size)
        System.arraycopy(second, 0, result, first.size, second.size)
        return result
    }


    /**
     * 将ByteArray数组数据转换成字符串数据
     */
    fun convertAudioByteArrayToBase64(audioData: ByteArray): String {
        return Base64.encodeToString(audioData, Base64.NO_WRAP)
    }
    /**
     * 停止ASR并获取结果
     */
    fun stop() {
        // 实际ASR停止逻辑，此处模拟返回识别结果
        val mockResult = "打开提词器并显示欢迎文本" // 模拟ASR识别结果
        onResult?.invoke(mockResult)
        Log.d("AsrClient", "ASR识别完成，结果：$mockResult")
    }

}